The present invention relates generally to data communications, and more particularly to a system that provides for the unidirectional transmission of multicast data packets from a first network to a second network as well as bidirectional transmission of unicast data packets between the first and second networks.
In its simplest form, a network comprises two or more nodes that are interconnected such that data can be communicated from one node of the network to any other node of the network. Networks can be connected to other networks by means of routers so that data can be passed from a node of a first network to one or more nodes of a second network. A network can also comprise a plurality of subnetworks interconnected by routers to make a larger network.
In network protocols, such as TCP/IP, data is transmitted through the network in packets. An internet protocol (IP) packet comprises a header which contains, among other things, a destination address and a source address, and a data segment attached to the header. There are at least three types of IP packets. A first type is a unicast packet in which the packet is addressed from a single source address to a single destination destination. Another type of IP packet is a multicast packet that is addressed from a single source address to a group address that consists of a defined plurality of destination addresses. Finally, a third type of packet is a broadcast packet that is broadcast from a single source address to every destination in the network.
Routers receive packets and forward the packets according to their source and destination addresses and the topology of the network. It is important that the same packet be delivered to its destination only once and that loops not be created in a network. A loop occurs when there are multiple paths between routers in a network and the same packet is sent back and forth between two or more routers in an endless fashion. Loops are prevented by the use of reverse path forwarding checks. Each router knows the appropriate direction of travel of a packet from a particular source to a particular destination through the network. If a router receives a packet coming from the wrong direction, the router drops the packet without forwarding it.
The interface between two separate networks is through boundary routers. All packets transmitted between the two networks go through the boundary routers. Thus, all packets addressed from a node in the first network to a node in the second network are routed to a boundary router of the first network. Similarly, all packets addressed from a node in the second network to a node in the first network are routed within the second network to a boundary router of the second network. Occasionally, it is desirable or necessary to have multiple communication links between two networks. For example, it may be necessary or desirable to transmit high bandwidth data, such as full motion video, from a first network to a second network, as well as normal internet data back and forth between the two networks. In such cases, the video data is typically transmitted over a unidirectional high bandwidth link such as a satellite link between the two networks. The normal internet traffic is transported over conventional internet links.
A problem associated with transmitting data between the same two networks over separate links is that the separate links typically enter the network through separate boundary routers. Thus, multicast packets from a source in the first network to a destination in the second network can travel through the second network in a direction opposite the direction unicast packets. A multicast packet traveling in what appears to be the wrong direction through the network will be eliminated by the reverse path forwarding checks performed by the routers. Thus, packets that enter the network through one of the boundary routers may not be able to be forwarded to all nodes of the network.
The present invention provides a method of and system for transmitting multicast packets unidirectionally from a transmitter of a source network to a receiver of a client network and unicast packets bidirectionally between the source network and the client network. In one of its aspects, the method of the present invention includes the steps of configuring a selected router of the client network to accept multicast packets from the receiver, establishing a virtual connection between the selected router of the client network and a selected router of the source network, and advertising in the client network that the virtual connection is the shortest path from the client network to the source network.
According to the present invention, multicast packets are forwarded from a source in the source network to a selected router of the source network. The selected router of the source network forwards the multicast packets to a selected router of the client network over a unidirectional link. The selected router of the client network forwards the multicast packets to the client network.
The client network forwards to the selected router of the client network all unicast packets addressed from a client of the client network to a source of the source network. The selected router of the client network encapsulates the unicast packets addressed from the client network to the source network and forwards the encapsulated unicast packets to the source network over a bidirectional link connecting the source and client networks. The selected router of the source network receives and decapsulates the encapsulated unicast packets. Then, the selected router of the source network forwards the decapsulated unicast packets to said source network.
Similarly, the source network forwards to the selected router of the source network all unicast packets addressed from a source of the source network to a client of the client network. The selected router encapsulates the unicast packets received from the source network and forwards those encapsulated unicast packets to the client network over the bidirectional link. The selected router of the client network receives and decapsulates the encapsulated unicast packets received over the bidirectional link. The selected router of the client network forwards decapsulated unicast packets to the client network.